package com.ctshk.rpc.system.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.system.dto.MainDataTouristTypeListDTO;
import com.ctshk.rpc.system.req.*;

/**
 * <p>
 *
 * </p>
 *
 * @author xuhui
 * @since 1/25/2021
 */

public interface IMainDataTouristTypeService {

    /**
     * 旅客类型列表
     * @param mainDataTouristTypeListReq
     * @return
     */
    PageResponse<MainDataTouristTypeListDTO> list(MainDataTouristTypeListReq mainDataTouristTypeListReq);

    /**
     * 新增旅客类型
     * @param mainDataPassengerTypeReq
     * @param currentUser
     * @return
     */
    Result<Integer> add(MainDataTouristTypeAddReq mainDataPassengerTypeReq, TokenUser currentUser);

    /**
     * 编辑旅客类型
     * @param mainDataTouristTypeModifyReq
     * @param currentUser
     * @return
     */
    Result<Integer> modify(MainDataTouristTypeModifyReq mainDataTouristTypeModifyReq, TokenUser currentUser);

    /**
     * 删除旅客类型
     * @param id
     * @param tokenUser
     * @return
     */
    Result<Integer> delete(Long id,TokenUser tokenUser);

    /**
     * 编辑旅客类型状态
     * @param mainDataTouristTypeModifyStatusReq
     * @param currentUser
     * @return
     */
    Result<Integer> modifyStatus(MainDataTouristTypeModifyStatusReq mainDataTouristTypeModifyStatusReq, TokenUser currentUser);

    /**
     * 查询旅客类型
     * @param req
     * @return
     */
    MainDataTouristTypeListDTO query(MainDataTouristTypeQueryReq req);
}